import { createHashRouter, RouteObject } from 'react-router-dom';
import Layout from '@/pages/layout';
import Home from '@/pages/home';
import { IconArticle, IconDesktop, IconHome, IconOrderedList } from '@douyinfe/semi-icons';
import Property from './pages/property';
import Record from './pages/record';
import Project from './pages/project';

// 定义包含自定义属性的路由接口
export interface AppRouteObject extends Omit<RouteObject, 'children'> {
  show?: boolean;
  icon?: React.ReactNode; // 或者更具体的类型，比如 React.ReactNode
  title?: string;
  children?: AppRouteObject[]; // 子路由也使用这个新接口
}


// 使用新的接口类型来定义 routes
export const routes: AppRouteObject[] = [
  {
    path: '/',
    element: <Layout />,
    children: [
      {
        path: '/',
        element: <Home />,
        show: true,
        icon: <IconHome />, // 示例 Icon 名称
        title: '首页'
      },
      {
        path: '/project',
        element: <Project />,
        show: true,
        icon: <IconArticle />, // 示例 Icon 名称
        title: '项目'
      },
      {
        path: '/property',
        element: <Property />,
        show: true,
        icon: <IconDesktop />, // 示例 Icon 名称
        title: '资产'
      },
      {
        path: '/record',
        element: <Record />,
        show: true,
        icon: <IconOrderedList />, // 示例 Icon 名称
        title: '记录'
      },
      // 你可以在这里添加更多子路由，它们也需要符合 AppRouteObject 接口
    ]
  }
  // 你可以在这里添加更多顶级路由
];

// createHashRouter 仍然可以接受 AppRouteObject[]
// 因为 AppRouteObject 扩展自 RouteObject，类型是兼容的
const router = createHashRouter(routes as RouteObject[]); // 可以选择性地断言回 RouteObject[]，虽然通常不需要

export default router;